#!/usr/bin/env python 3.7
# -*- coding: utf-8 -*-
# @Time       : 2019/7/13 14:37
# @Author     : wangxingxing
# @Email      : xingfengwxx@gmail.com 
# @File       : test2.py
# @Software   : PyCharm
# @Description: 


import re


def main():
    # 创建正则表达式对象，使用了前瞻和回顾来保证手机号前后不应该出现数字
    pattern = re.compile(r'(?<=\D)(1[38]\d{9}|14[57]\d{8}|15[0-35-9]\d{8}|17[678]\d{8})(?=\D)')
    sentence = '''
    重要的事情说8130123456789遍，我的手机号是13512346789这个靓号，
    不是15600998765，也是110或119，王大锤的手机号才是15600998765。
    '''
    # 查找所有匹配并保存到一个列表中
    mylist = re.findall(pattern, sentence)
    print(mylist)
    print('--------------------华丽的分割线----------------')
    # 通过迭代器去除匹配对象并获得的匹配的内容
    for temp in pattern.finditer(sentence):
        print(temp.group())
    print('--------------------华丽的分割线----------------')
    # 通过search函数指定搜索位置找出所有匹配
    m = pattern.search(sentence)
    while m:
        print(m.group())
        m = pattern.search(sentence, m.end())


if __name__ == '__main__':
    main()